home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 31
/
Commodore_Free_Issue_31_2009_Commodore_Computer_Club.d64
/
iv p ojala
< prev
next >
Wrap
Text File
|
2023-02-26
|
10KB
|
357 lines
u
*************************************
Interview with
Vic20 Coder and Demo Creator
*************************************
http://www.cs.tut.fi/{$de}albert/Pu-239/vi
cual-mmix/
Q. Please introduce yourself to our
readers
A. I'm a 39-year-old embedded
software engineer that does not shy
away from hardware either. I work in
VLSI Solution Oy (
http://www.vlsi.fi/ )developing code
among other things for audio decoder
chips and various applications using
them.
Q. How did you become interested in
the VIC-20?
A. A friend gave me a VIC20 around
1989, and I played with it a bit,
converting some C64 fonts to VIC's
16-line characters. Nothing really
became of it though, because I didn't
have time or great motivation to
really study the operation of the
chips inside the VIC20. My interest
in VIC20 sparked in 1995 when Marko
Mkel and Andreas Boose set out to
find out the ins and outs of the
VIC-I video chip. I had run out of
demo ideas for C64 and was no
graphician or musician so it was
natural to take a step back to VIC20,
the undiscovered demo territory.
Q. Was the Vic your first home
computer?
The first computer I played with was
a ZX-81 owned by a friend of mine. A
few years later another friend had a
VIC-20 and we created a few basic
programs with it. My first computer
was Sinclair Spectrum 48k. I created
a few BASIC games with it, using
user-definable characters and used a
lot of string operations to make the
games fast enough. At some point I
broke it by fiddling with the
expansion port. The machine visited a
repair shop but never worked very
well after that.
After a few years I bought a C64 and
a 1541 drive. I also bought a Handic
300bps / 1200/75bps modem and called
the few bulletin board systems
available in Finland at that time.
The phone bills made a stop to that
for a long time until the first BBS's
appeared in the Tampere area code.
This encouraged me to start my own
BBS Pasbox (imaginative, right?),
which ran my own software on a C64
and a 1581 disk drive. Machine
language subroutines that I wrote
made the BBS faster and better.
One of the first and nicest routines
was a TOD clock with calendar that
was automatically updated by the TOD
alarm interrupt at midnight. Leap
years were of course supported. You
could get the time and date in
human-readable form into a string
variable by giving the right SYS
command. You got for example
"21:31.35 Fri 5.1.90".
Another nice routine was a line wrap
and hyphenation routine for finish.
Fittingly to the theme, another BBS
in Tampere was run on a VIC20, also
with self-made software. We even
created a message transfer protocol
that swapped messages between our
systems. The system was called
Pet-Net and a few other systems also
joined that.
On the hardware side I created a
256kB RAMDISK that stored the
recently read messages so the 1581
drive would not need to spin up so
often. The RAMDISK hooked into the
load and save vectors so it could be
easily used from BASIC programs.
In the later years the C64 was
retired from Pasbox service and A500
took the role using a BBS software
named AXsh that looked like a Unix
shell, but with protections so that
you could not run any non-trusted
programs. I even piped Usenet
newsgroup messages from my university
account to the BBS.
Q. Have you programmed for any other
Commodore computers (Amiga included)?
If so, how does programming the VIC
compare? i.e., does a lack of
hardware sprites help or hinder
A. I never did any demo coding on the
Amiga, just "productivity" like AXsh,
stroke commodity, c1581-handler.
VIC20 demo coding compared to coding
on C64 is at its core the same thing:
to use the capabilities at your
disposal in the best possible way.
When working with Vic you are just
much more limited in every way, which
emphasizes good ideas. The lack of
sprites forces you to select ideas
that the machine's good at instead of
trying to make it do something it
does poorly.
Q. What is your favourite 8-bit demo
(excluding your own works)?
A. I'm an old-school dude and I
appreciate technical over pretty. I
really liked the Think Twice! and
similar demos that showed some
VIC-II trick for the first time or
made good use of it. There are tons
of demos that are spectacular in
graphics and sound, and I'm quite
amazed by those as well.
Q. Can you tell our readers about
VICUAL MMIX
A. VICUAL MMIX is a nine-part demo
for the unexpanded VIC20. New parts
are loaded from disk as the demo
progresses The demo tries to show
visually interesting effects that
have not been seen on VIC20 before.
Some of the parts are further
developed versions or different takes
on parts seen in my previous VIC20
demos.
Q. Is there anything specific behind
"this kind of demo" and "such
effects"?
This time I toned down the "use less
known VIC-I features" and "this is
impossible in 5.5kB" and went more in
the direction of keep it simple, use
interesting visual effects and
unusual colour combinations. I also
made the parts roll on much quicker
so that you would not get bored
waiting for the next part. If you
want to watch for longer and see more
pretty colours, you can run the demo
in manual mode.
Q. This Demo runs on an Unexpanded
VIC20! What was the main problem
coding the demo apart from lack of
memory?
A. Is that not enough?:-) Well, as I
said before, I'm no musician, so help
from Anders Carlsson was needed to
fill the silence with something you
would listen to wilfully.
Q. Why create such a Demo on the Vic?
is it purely because you wanted to
show the machine was capable of such
techniques?
A. It's a hobby, coding is fun. And
demo coding on VIC20 is so much
different from what programming I do
every day that it is quite relaxing
as well.
Q. Can you tell our readers about
your programming environment and the
tools used to create the demo?
A. When I started developing the demo
in 2002-ish, I used A3000 with Cygnus
Editor, dasm, SAS/C, DPaint, and my
c1581-handler to read/write c1581
disks directly on the Amiga. Some
small utilities were written for
previous VIC20 demos and this one. In
2003 I started using a FreeBSD PC, so
the development environment changed a
bit. I still use dasm, but now with
emacs, gcc, and gimp. I also made use
of Marko Mkel's c2nload that
connects between the PC's serial port
and VIC20's tape port.
Q. And is the source code freely
distributable?
A. The demo and source code is on the
web freely available and you can give
it to other people. It is intended
for people to learn from.
Q. Some readers wonder why
programmers spend such time working
on demos why didn't you create a game
or utility for the Vic?
A. I have thought about making a game
for VIC20, but it should not be just
any game. Some originality should be
involved, or at least something not
thought possible with a VIC20. There
are a few utilities of mine for
VIC20. Although not running on a VIC,
pucrunch supports VIC20 and is used
in my VIC20 demos. (That and the
small memory keep the loading times
short.) PuZip has a VIC20 version, so
you can make ZIP archives on your
lovely machine, although you need a
bit of expansion memory. I have also
released a graphics converter that
creates graphics files run able on a
vic.
Q. I personally thought I had "seen
it all" I mean the vic is so limited,
although some feel the limitations
are an aid to creativity, Do you
think there is anything left to
achieve on the VIC-20 now?
A. VICUAL MMIX did not push the VIC20
much further than before, so
certainly this is not the end.
Q. Would you consider doing a
multi-part 'one-filer' which requires
a RAM expansion? Or any programming
that uses extra RAM? or do you prefer
to utilise the hardware "as is"
A. My first VIC20 demo "Vici Iterum
MM" required 16kB expansion RAM. Some
of the parts were original, some just
remakes of old but popular C64
effects. The extra RAM was mainly
used for loading the next part while
the current part was running.
There are three reasons why I
switched to using the unexpanded
machine.
1) Requiring memory expansion limits
the audience. Although VICE currently
emulates PAL VIC20 very accurately,
and NTSC VIC20 fairly accurately,
there are still people that want to
run the demos on the actual machine
for one reason or another and they
don't all have expansion memory
cartridges.
2) Expansion memory can not be used
for graphics, because VIC-I can only
see the internal RAM. This limits the
usefulness of the extra RAM.
3) All cool dudes write stuff for the
unexpanded machine :-) Making best
use of the limited memory resources
is part of the fun.
Q. What would you rate as your best
achievement in programming terms?
A. In the 8-bit-world gunzip (a GZip
and ZIP decompressor) surely loses to
puzip.
Q. can you tell our readers about any
other projects you are working on,
and also maybe some of the past works
you have created, also are these
available to download?
A. I already mentioned some. Most if
not all of my projects are available
from my web pages. You can start
browsing from
http://www.iki.fi/a1bert/Dev/ .
Q. If you could change 3 things on
the vic20 what would you change?
A. I'm only considering things that
were probably realistic back them.
Machine-level: 8kB of internal RAM
instead of 5kB. VIC-I video/sound
chip:
1) Horizontal smooth scroll -- now
horizontal positioning resolution is
one cycle, which is 4 pixels
2) 8 bits of frequency control for
sound -- now 1 bit is used for on/off
and 7 bits for frequency
3) global multicolour mode bit, so
that in hires-only mode you could
use all 16 colours as character
colours
Q. Do you program for any other
systems, 8 bit or otherwise?
A. I started my 6502 assembly
programming on the C64, but it seems
VIC20 is enough right now. At work
I'm programming our digital signal
processor VSDSP in assembly and in C.
After 11 years of assembly coding I'm
slowly becoming good at it. :-)
--